#ifndef __PARSER_H__
#define __PARSER_H__

#include <iostream>
using namespace std;
#include "json.h"
#include <string>
// #include <vector>
// #include <map>

namespace sf
{
    namespace json
    {
        class Parser
        {
        public:
            Parser();
            void load(const string &str);
            Json parse();

        private:
            void skip_white_space();
            char get_next_token();
            Json parse_null();
            Json parse_bool();
            Json parse_number();
            string parse_string();
            Json parse_array();
            Json parse_object();

        private:
            string m_str;
            int m_idx;    //解析索引
        };
    }
}

#endif